let counter = 0;
/**
 * 生成一个几乎不可能重复的唯一 ID
 * @param prefix - ID前缀，默认值为"uid"
 * @returns 返回生成的唯一ID字符串
 * - 优先使用 crypto.randomUUID()（安全、标准 UUID）
 * - 不支持时使用 时间戳 + 随机数 + 自增计数器（保证本次运行不重复）
 */
export function getUniqueId(prefix = "uid"): string {
  // 1. 优先使用 Web Crypto API（现代浏览器 & Node.js 14.17+）
  if (typeof crypto !== "undefined" && crypto.randomUUID) {
    return `${prefix}_${crypto.randomUUID()}`;
  }

  // 2. 兜底方案：时间戳(36进制) + 随机字符串 + 自增计数（防同一毫秒重复）
  const timestamp = Date.now().toString(36);
  const randomPart = Math.random().toString(36).substring(2, 10);
  const countPart = (counter++).toString(36).padStart(4, "0");

  return `${prefix}_${timestamp}${randomPart}${countPart}`;
}
